import request from '../utils/request'

/**
 * 获取问题列表
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getQuestionList(params) {
  return request({
    url: '/questions',
    method: 'get',
    params
  })
}

/**
 * 获取问题详情
 * @param {Number} id - 问题ID
 * @returns {Promise}
 */
export function getQuestionDetail(id) {
  return request({
    url: `/questions/${id}`,
    method: 'get'
  })
}

/**
 * 创建问题
 * @param {Object} data - 问题参数
 * @returns {Promise}
 */
export function createQuestion(data) {
  return request({
    url: '/questions',
    method: 'post',
    data
  })
}

/**
 * 更新问题
 * @param {Object} data - 问题参数
 * @returns {Promise}
 */
export function updateQuestion(data) {
  return request({
    url: `/questions/${data.id}`,
    method: 'put',
    data
  })
}

/**
 * 删除问题
 * @param {Number} id - 问题ID
 * @returns {Promise}
 */
export function deleteQuestion(id) {
  return request({
    url: `/questions/${id}`,
    method: 'delete'
  })
}

/**
 * 获取热门问题
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getHotQuestions(params) {
  return request({
    url: '/questions/hot',
    method: 'get',
    params
  })
}

/**
 * 获取等待回答的问题
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getWaitingQuestions(params) {
  return request({
    url: '/questions/waiting',
    method: 'get',
    params
  })
}

/**
 * 更新问题状态
 * @param {Number} id - 问题ID
 * @param {Number} status - 状态值
 * @returns {Promise}
 */
export function updateQuestionStatus(id, status) {
  return request({
    url: `/questions/${id}/status/${status}`,
    method: 'put'
  })
}

/**
 * 获取推荐问题
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getRecommendQuestions(params) {
  return request({
    url: '/questions/recommend',
    method: 'get',
    params
  })
}

/**
 * 获取关注用户的问题
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getFollowingQuestions(params) {
  return request({
    url: '/questions/following',
    method: 'get',
    params
  })
} 